The present invention relates to services, and more specifically to rationalizing functions to identify re-usable services.
Service Oriented Architecture (SOA) solutions are business process driven and are required to support business functions in various functional areas. A functional area is a logical grouping of related or cohesive functions. Key objectives of SOA are identification and design of services which are re-usable and flexible to accommodate variations that a business must support in order to be agile. In a medium to large size SOA projects, normally there are different teams who are assigned specific business processes and functional areas to analyze with the intent to identify re-usable and flexible services (i.e. services which can support variations). In this distributed work environment, analysis often results in duplicate functions being identified by various teams. If the number of functional areas is large there is a potential for significant amount of duplication. If there is no mechanism or technique to identify and consolidate or eliminate these duplicate functions, a large number of candidate services that support or perform same functions are identified.
The focus in SOA is on identifying services that need to be exposed. A service modeling toolkit such as IBM's SOMA-ME-Service Oriented Modeling Architecture Modeling Environment, is used to rationalize which services need to be exposed and which should not be exposed to consumers within and outside of an enterprise. The toolkit, though it automates the process of prioritizing and ranking services to help decide which services to be exposed, it still requires business and IT team members to apply every question (in the toolkit) and associated scores to each and every candidate service. This can take a significant amount of time if the number of candidate services is large (i.e. candidate services >500) due to duplication.